home *** CD-ROM | disk | FTP | other *** search
/ Professional Soft Collection 1.02 / Professional Soft Collection 1.02.iso / winutils / wingauge.zip / MMETER.C < prev    next >
C/C++ Source or Header  |  1993-01-19  |  1KB  |  36 lines

  1. #pragma hdrfile "WinGauge.SYM"
  2. #include <win31.h>
  3. #include "wingauge.h"
  4. #include "wingauge.rh"
  5. #pragma hdrstop
  6.  
  7. static const COLORREF    aMemColors[] = { LIGHTRED, YELLOW, BLUE, GREEN };
  8.  
  9. void mmPaint( HDC hDC, short sOffset, WORD wNumber, PSTR szBuffer )
  10. { WORD      i, wMemBound;
  11.   HBRUSH  hBrush;
  12.   HPEN      hPen;
  13.  
  14.   if( wNumber >= 1000 )
  15.     wsprintf( szBuffer, "%u.%uM", wNumber >> 10,
  16.                        ( (wNumber & 1023) * 10 ) >> 10 );
  17.   else
  18.     szBuffer[lstrlen(szBuffer)-1] = 'K';
  19.  
  20.   for( i=0, wMemBound=128;
  21.        wNumber > wMemBound && i<ArraySize(aMemColors);
  22.        ++i, wMemBound *= 8 )
  23.      ;
  24.   if( wNumber > wMemBound )
  25.     wNumber = wMemBound;
  26.  
  27.   hPen = SelectObject( hDC, GetStockObject( NULL_PEN ) );
  28.   hBrush = SelectObject( hDC, CreateSolidBrush(aMemColors[i]) );
  29.   Rectangle( hDC, sOffset+3, sOffset+18,
  30.           sOffset+3 + MyMulDiv( 26, wNumber, wMemBound ),
  31.                  sOffset+26 );
  32.   DeleteObject( SelectObject( hDC, hBrush ) );
  33.   SelectObject( hDC, hPen );
  34.  
  35.   SetTextColor( hDC, BLACK );
  36. }